﻿using _05.状态模式.Entities;
using _05.状态模式.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _05.状态模式.States
{
    /// <summary>
    /// 已签约状态
    /// </summary>
    internal class SignedState : ProjectState
    {
        #region 01.签约 —— void Sign(Project project)
        /// <summary>
        /// 签约
        /// </summary>
        /// <param name="project">项目</param>
        public override void Sign(Project project)
        {
            throw new NotImplementedException("当前项目为已签约状态，不可再签约！");
        }
        #endregion

        #region 02.施工 —— void Construct(Project project)
        /// <summary>
        /// 施工
        /// </summary>
        /// <param name="project">项目</param>
        public override void Construct(Project project)
        {
            project.ProjectStatus = ProjectStatus.Constructing;
        }
        #endregion

        #region 03.完工 —— void Finish(Project project)
        /// <summary>
        /// 完工
        /// </summary>
        /// <param name="project">项目</param>
        public override void Finish(Project project)
        {
            throw new NotImplementedException("当前项目为已签约状态，不可完工！");
        }
        #endregion

        #region 04.结算 —— void Settle(Project project)
        /// <summary>
        /// 结算
        /// </summary>
        /// <param name="project">项目</param>
        public override void Settle(Project project)
        {
            throw new NotImplementedException("当前项目为已签约状态，不可结算！");
        }
        #endregion
    }
}
